//
//  MainTabBar.swift
//  Swift-SinaWeibo
//
//  Created by 陈高健 on 15/12/12.
//  Copyright © 2015年 陈高健. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {
    
    
    //重写父类构造方法
    override init(frame: CGRect) {
        super.init(frame: frame)
        addSubview(composeBtn)
    }

    //如果实现了init(frame)意味着该类不会默认支持手写代码,不支持xib,不会调用init(aDecoder)
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        addSubview(composeBtn)
    }

    //在layoutSubviews设置子视图的frame
    override func layoutSubviews() {
        super.layoutSubviews()
        
        //设置tabbarbutton的frame 
        //计算每个tabbarbutton按钮的宽度
        let w = self.bounds.width / 5
        let h = self.bounds.height
        //设置按钮的位置
        let rect = CGRect(x: 0, y: 0, width: w, height: h)

        //设置按钮的索引
        var index: CGFloat = 0
        //遍历所有的子视图
        for subview in subviews {
            //判断是否是UITabBarButton
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!){
                //设置水平按钮的位置
                subview.frame = CGRectOffset(rect, index * w, 0)
                //判断,如果是第二个UITabBarButton,那么索引就开始加2 这样可以把中间的空出来
                index += (index == 1 ? 2 : 1)
            }
        }
        //设置中间加号按钮的位置
        composeBtn.frame = CGRectOffset(rect, w * 2, 0)
    }
    
    //利用懒加载计算出中间空出来的UITabBarButton的位置
    lazy var composeBtn: UIButton = {
        //初始化btn按钮
        let btn = UIButton()
        //设置按钮图片
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named: "tabbar_compost_icon_add_highlighted"), forState: .Highlighted)
        //设置按钮背景图片
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        //填充按钮
        btn.sizeToFit()
        //返回按钮
        return btn
    }()
}
